package com.guigu.qingcheng.servicegoods.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guigu.qingcheng.pojo.goods.Goods;
import com.guigu.qingcheng.pojo.goods.TbSpu;
import com.guigu.qingcheng.utils.R;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author testjava
 * @since 2020-07-08
 */
public interface TbSpuService extends IService<TbSpu> {
    /**
     *分页查询待条件
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    Page<TbSpu> findPage(Map<String, Object> searchMap, int page, int size);

    /**
     * 条件查询不分页
     * @param searchMap
     * @return
     */
    List<TbSpu> findList(Map<String, Object> searchMap);

    /**
     * 定义一个保存商品的方法
     * @param goods
     */
    void saveGoods(Goods goods);

    /**
     * 通过id来查询商品
     * @param id
     * @return
     */
    Goods findGoodsById(String id);

    /**
     *上商品审核
     * @param id
     */
    void audit(String id, String status);

    /**
     * 商品下架的处理
     * @param id
     */
    void pull(String id);

    /**
     * 商品上架的处理
     * @param id
     */
    void put(String id);

    /**
     * 批量上架的方法
     * @param ids
     * @return
     */
    int putMany(String[] ids);

    /**
     * 批量下架的方法
     * @param ids
     * @return
     */
    int pullMany(String[] ids);


    /**
     * 商品回收站的显示查询
     * @param id
     * @return
     */
    List<TbSpu> backStation(String id);

    /**
     * 回收商品
     * @param id
     */
    Boolean backGoods(String id);

    /**
     * 逻辑删除商品
     * @param id
     */
    Boolean ljdelete(String id);

    /**
     *分页查询待条件
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    Page<TbSpu> findPageSaudit(Map<String, Object> searchMap, int page, int size);

    /**
     * 分页查询回收站里商品
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    Page<TbSpu> findBackPage(Map<String, Object> searchMap, Integer page, Integer size);

}
